#!/bin/sh
#
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.

ret=0
for spatch in cocci/*.spatch; do
    patch="$(dirname "$spatch")/$(basename "$spatch" .spatch).patch"
    : > "$patch"
    echo "Applying semantic patch $spatch..."
    spatch --jobs "${TEST_PARALLEL_JOBS:-1}" --sp-file "$spatch" --use-gitgrep --dir "." --very-quiet --include-headers "$@" >> "$patch" 2> cocci.stderr
    cat cocci.stderr
    if grep -q -e "parse error" cocci.stderr; then
        ret=1
    fi
    if [ "$(< "$patch" wc -l)" -gt "0" ]; then
	cat "$patch"
	ret=1
    else
	rm "$patch"
    fi
done

rm -f cocci.stderr

exit $ret
